package org.uca.pecs.hornetq.payload;

import org.hornetq.api.core.HornetQException;
import org.hornetq.api.core.client.ClientMessage;
import org.hornetq.api.core.client.ClientProducer;
import org.hornetq.api.core.client.ClientSession;

/**
 * Esta clase contiene metodos estaticos que envian varios mensajes para el productor
 * que se le ordene a traves de los parametros
 * @author rafael.sanchez.es
 *
 */
public class EnviadorDeMensajes {
	
	
	public static void enviarMensajes(ClientSession session, ClientProducer producer, int inicio, int fin, String fuente, boolean durable) throws HornetQException
	{
		GeneradorDeContenidos contenidos = new GeneradorDeContenidos(1,10,fuente);
		boolean terminado = false;
		while(!terminado)
		{
			ContenidoTest ct = contenidos.siguiente();
			
			if(ct.getNumero().intValue() == 999999999)
				terminado = true;
			
			ClientMessage message= session.createMessage(durable);

			
			//Introducir el numero en el mensaje
			message.putIntProperty("numero", ct.getNumero().intValue());
			message.putStringProperty("fuente", ct.getFuente());
			
			producer.send(message);
			System.out.println("Mensaje enviado: numero " + ct.getNumero().intValue() + ". Fuente: " + ct.getFuente());
			
		}		
			
	}
	
	public static void enviarMensajeSimple(ClientSession session, ClientProducer producer, String mensaje, boolean durable) throws HornetQException
	{
		ClientMessage message= session.createMessage(durable);
		message.putStringProperty("mensaje",mensaje);
		producer.send(message);			
	}
}
